From: Matthias Clasen Date: Fri, 19 Jan 2018 15:04:18 +0000 (+0100) Subject: iconview: Fix updates with filter models X-Git-Tag: archive/raspbian/3.24.39-1+rpi1~1^2~65^2~38^2~51 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success/%22http:/www.example.com/cgi/success?a=commitdiff_plain;h=5ab5a5166eda774ddabf8d4fe29eda0be03c4af2;p=gtk%2B3.0.git iconview: Fix updates with filter models Filter models rely on views taking a ref on every node they care about. GtkIconView was not doing that. Amazingly, this has never shown up in a bug so far, until I spotted the fallout in gnome-font-viewer. --- diff --git a/gtk/gtkiconview.c b/gtk/gtkiconview.c index 4062bfd7db..4b364d53c3 100644 --- a/gtk/gtkiconview.c +++ b/gtk/gtkiconview.c @@ -3466,6 +3466,8 @@ gtk_icon_view_row_inserted (GtkTreeModel *model, if (gtk_tree_path_get_depth (path) > 1) return; + gtk_tree_model_ref_node (model, iter); + index = gtk_tree_path_get_indices(path)[0]; item = gtk_icon_view_item_new (); @@ -3502,11 +3504,15 @@ gtk_icon_view_row_deleted (GtkTreeModel *model, GtkIconViewItem *item; GList *list, *next; gboolean emit = FALSE; + GtkTreeIter iter; /* ignore changes in branches */ if (gtk_tree_path_get_depth (path) > 1) return; + gtk_tree_model_get_iter (model, &iter, path); + gtk_tree_model_unref_node (model, &iter); + index = gtk_tree_path_get_indices(path)[0]; list = g_list_nth (icon_view->priv->items, index);